package com.udi.project.business.upload.diup.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.udi.framework.web.domain.AjaxResult;
import com.udi.project.business.upload.diup.domain.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.IOException;
import java.util.List;
import java.util.Map;

@Service
public interface GetDiupMesService {
    /**
     * 查询完整的di信息，下拉补全，根据名称获得规格，获得最小销售单元产品标识
     * @param di
     [di]* @return java.util.List<com.udi.project.business.upload.diup.domain.dt_di_indentityVo>
     * @author yuxin
     * @date 2021/10/15 16:15
     */
    JSONObject getDiup(String di);
    

    /**
     * 
     * @param data 获取diup完整信息显示
     [data]* @return java.util.List<com.udi.project.business.upload.diup.domain.dt_di_indentityVo>
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/18 8:32
     */
    List<dt_di_indentityVo> getDiupMes(dt_di_indentityVo data);

    /**
     *
     * @param Id 根据Id查询DeviceData
     * @return DeviceData
     */
    public DeviceData  getDeviceDataById(Integer Id);
    /**
     *
     * @param Id 根据最小销售单元查询DevicePackage列表
     * @return DevicePackage
     */
    public List<DevicePackage>  getDevicePackageById(String Id);
    /**
     *
     * @param Id 根据最小销售单元查询DeviceStorage列表
     * @return DeviceStorage
     */
    public List<DeviceStorage>  getDeviceStorageById(String Id);
    /**
     *
     * @param Id 根据最小销售单元查询DeviceClinical列表
     * @return DeviceClinical
     */
    public List<DeviceClinical>  getDeviceClinicalById(String Id);



    /**
     *
     * @param data 网页填报添加操作，添加事务回滚
     [data]* @return java.lang.Integer
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/18 14:29
     */
    public AjaxResult addData(BaseData data);

    /**
     *
     * @param id diup编辑操作
    [data]* @return java.lang.Integer
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/18 14:29
     */
    public Integer editData(Integer id);

    /**
     *
     * @param data diup去除操作
    [data]* @return java.lang.Integer
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/18 14:29
     */
    public Integer removeData(String data);

    /**
     *
     * @param data diup永久删除操作
    [data]* @return java.lang.Integer
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/18 14:29
     */
    public Integer delData(String data);

    /**
     * 
     * @param ids 数组字符串，数据填报验证
     [ids]* @return int
     * @author yuxin
     * @creed: Talk is cheap,show me the code
     * @date 2021/10/8 17:37
     */
    
    public JSONObject checkByIds(List<Product> ids) throws Exception;

    /**
     *
     * @Description:DI申报
     * @param what 申报数据
     * @return: com.udi.framework.web.domain.AjaxResult 返回申报结果消息
     * @Date: 2021/8/10 9:20
     */
    public AjaxResult declare(Product1 what) throws IOException;
}
